package com.hgl.bi.common.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @program: BI
 * @description: 错误信息
 * @author: hgl
 * @create: 2025-02-09 17:18
 */
@Getter
@AllArgsConstructor
public enum ErrorCode {

    SUCCESS(200, "success"),
    /**
     * 请求参数错误
     */
    PARAM_ERROR(400, "请求参数错误"),
    REQUEST_PARAM_ERROR(400, "请求缺乏必要参数"),
    EMAIL_NOT_NULL(400, "邮箱不能为空"),
    PHONE_NOT_NULL(400, "手机号不能为空"),
    PASSWORD_NOT_NULL(400, "密码不能为空"),
    CHECK_PWD_NOT_NULL(400, "确认密码不能为空"),
    EMAIL_FORMAT_ERROR(400, "邮箱格式不合法"),
    PHONE_FORMAT_ERROR(400, "手机号不合法"),
    PASSWORD_LENGTH_ERROR(400, "密码长度不能小于6位"),
    PASSWORD_NOT_EQUALS(400, "两次输入密码不一致"),
    ACCOUNT_NOT_NULL(400, "账号不能为空"),
    CAPTCHA_NOT_NULL(400, "验证码不能为空"),
    FILE_NAME_NOT_NULL(400, "文件名不能为空"),
    COS_PATH_NOT_NULL(400, "COS路径不能为空"),
    FILE_SIZE_NOT_NULL(400, "文件大小不能为空"),
    ROLE_ID_NULL(400, "角色ID不能为空"),
    PMT_ID_NULL(400, "权限ID不能为空"),
    FILE_ID_NULL(400, "文件ID不能为空"),
    SET_ID_NULL(400, "数据集ID不能为空"),
    DEMAND_NOT_NULL(400, "需求信息不能为空"),
    CLEAN_ID_NULL(400, "数据清洗ID不能为空"),
    ANALYZE_ID_NULL(400, "数据分析ID不能为空"),
    USER_ID_NULL(400, "用户ID不能为空"),
    USER_IDS_NULL(400, "分享用户ID不能为空"),
    CONTEXT_IS_NULL(400, "应用上下文为空"),
    /**
     * 请求未授权
     */
    UNAUTHORIZED(401, "请求未授权"),
    TOKEN_INVALID(401, "token无效"),
    /**
     * 请求被拒绝
     */
    FORBIDDEN(403, "请求被拒绝"),
    /**
     * 请求路径不存在
     */
    NOT_FOUND(404, "请求路径不存在"),
    /**
     * 请求方法不支持
     */
    METHOD_NOT_ALLOWED(405, "请求方法不支持"),
    /**
     * 请求超时
     */
    REQUEST_TIMEOUT(408, "请求超时"),
    /**
     * 请求参数类型错误
     */
    MEDIA_TYPE_NOT_SUPPORTED(415, "请求参数类型错误"),
    /**
     * 请求头格式错误
     */
    HEADERS_NOT_VALID(422, "请求头格式错误"),
    /**
     * 服务器内部错误
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),
    LOAD_PROMPT_ERROR(500, "加载提示词错误"),


    /**
     * 服务器繁忙
     */
    SERVICE_UNAVAILABLE(503, "服务器繁忙"),
    /**
     * 业务异常
     */
    BUSINESS_ERROR(600, "业务异常"),
    PAGE_CONVERT_ERROR(600, "分页转换异常"),
    OBJECT_CONVERT_ERROR(600, "对象转换异常"),
    LIST_CONVERT_ERROR(600, "列表转换异常"),
    UPDATE_FALSE(600, "更新失败"),
    SAVE_FALSE(600, "保存失败"),
    REMOVE_FALSE(600, "删除失败"),
    SHARED_SET_FALSE(600, "分享数据集失败"),
    CANCEL_SHARED_SET_FALSE(600, "取消分享数据集失败"),
    USER_EXISTS(600, "用户已存在"),
    REGISTER_FALSE(600, "注册失败"),
    ACCOUNT_OR_PASSWORD_ERROR(600, "账号或密码错误"),
    LOGIN_FALSE(600, "登录失败"),
    CAPTCHA_EXPIRED(600, "验证码已过期"),
    CAPTCHA_ERROR(600, "验证码错误"),
    READ_FILE_CONTENT_FALSE(600, "读取文件内容失败"),
    NOT_LOGIN(600, "未登录"),
    AWARD_PERMISSION_FALSE(600, "分配权限失败"),
    ASSOCIATE_SET_FALSE(600, "关联数据集失败"),
    PARSE_JSON_ERROR(600, "解析JSON错误"),
    TASK_NOT_EXIST_OR_PROCESSED(600, "任务不存在或已处理"),
    STATUS_UPDATE_ERROR(600, "状态更新冲突"),
    RESPONSE_IS_NULL(600, "响应数据为空"),
    RESPONSE_ERROR(600, "响应数据错误"),
    PERMISSION_NOT_EXISTS(600, "抱歉，您没有该权限，请联系管理员"),

    LOGOUT_FALSE(600, "退出失败");

    /**
     * 错误码
     */
    private final Integer code;

    /**
     * 错误信息
     */
    private final String message;
}
